<!--{block return}-->
<div>
	注意：在X2 RC测试有效，不保证X2系列的版本也能生成正确的钩子类名和钩子方法（又称“子方法名”）。
	<br />
	[和X1.5相同]在X2 BETA/RC中，如果变量GLOBALS['_G']['basescript']和常量CURSCRIPT不相同，钩子类名则以前者为准；
	<br />
	[和X1.5不同]变量GLOBALS['_G']['basescript']或者常量CURSCRIPT为“home”时，有特殊判定：
	<ol>
		<li>&nbsp;&nbsp;-&nbsp;如果常量CURMODULE为“spacecp”时，由_GET['ac']决定钩子方法（假设存在_GET['ac']），即钩子方法为：spacecp_[_GET['do']]；</li>
		<li>&nbsp;&nbsp;-&nbsp;否则，钩子方法开头将被强制设置为“space_”，并由_GET['do']决定钩子方法（假设存在_GET['do']）；</li>
	</ol>
	<br />
</div>

<div>
	当前常量CURSCRIPT / 常量CURMODULE：{$this->hscript_define} / {$this->script}
</div>

<!--{if isset($GLOBALS['_G']['basescript']) }-->
<div>
	变量GLOBALS['_G']['basescript']: {$GLOBALS['_G']['basescript']}
</div>
<!--{/if}-->

<!--{if !empty($do) }-->
<div>
	当前存在变量_GET['do']：{$do}
</div>
<!--{/if}-->

<!--{if !empty($ac) }-->
<div>
	当前存在变量_GET['ac']：{$ac}
</div>
<!--{/if}-->

<div>
	<br />
	<strong>综上，在该页面能运行&nbsp;{$hookscript_sub_method}_xxxx[_output]&nbsp;钩子方法的的钩子类名应该为&nbsp;plugin_{$this->plugin_id}_{$this->hscript} </strong>
	<br />
</div>

<div>
<pre>
	{$class_code}
</pre>
</div>


<div>
	以下内容摘抄自《Discuz! X 插件开发手册 X2 Release 20110322》：<br /><br />
开始编写一个新插件，请首先打开 config/config_global.php 文件，在文件结尾添加以下代码开启插件设计者模式。<br />
<pre>
_config['plugindeveloper'] = 1;   //请自行添加美元符号，使其成为变量
<pre>

要查看所有的预定义嵌入点，请打开 config/config_global.php 文件，将文件结尾添加的设计者模式值改成“2”，然后更新缓存即可。在页面源码中查找"<hook>"可搜索到嵌入点。（详细内容可参阅后面的《嵌入点列表》）<br />
<pre>
_config['plugindeveloper'] = 2;    //请自行添加美元符号，使其成为变量
<pre>

</div>

<!--{/block}-->
